
import axios from 'axios'

//组合是api的路由使用
import router from '@/router'


const baseURL = 'http://localhost:8080'
const instance = axios.create({ baseURL });

//拦截器
// 添加响应拦截器，统一处理响应来的数据
instance.interceptors.response.use(
	result => {
		/**成功或失败的逻辑直接在拦截器处理,进行程序的复用 */

		//因为前面解构复制进行了结构，这里不需要result.data
		if (result.data.code == 1) {
			return result;
		}

		//请求失败的处理
		ElMessage.error(result.data.msg ? result.data.msg : "操作失败")
		return Promise.reject(result)
	},
	err => {
		console.error(err); // 打印错误响应  

		alert('响应异常');
		return Promise.reject(error);
	}
);

//添加请求拦截器，一般用于携带token,供后续接口的请求操作
// 添加请求拦截器
instance.interceptors.request.use(
	(config) => {
		// 在发送请求之前做些什么
		const token = localStorage.getItem("token")

		if (token) {
			config.headers.token = token

		} else {
			//token不存在直接回到登录页面
			router.replace('/Login')

		}

		return config;
	},
	(error) => {
		alert("服务异常")
		// 对请求错误做些什么
		return Promise.reject(error);
	}
);

export default instance;